package com.stars.module.privilege.service;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.stars.base.entity.CommonDTO;
import com.stars.module.privilege.entity.StarPrivilege;

/**
 * @author : Rocks
 * @version : 1.0
 * @date : 2022/11/30 14:02
 * @description : 权限相关服务接口
 */
public interface StarPrivilegeService {

    /**
     * 保存或者更新权限对象
     * @author : Rocks
     * @date :  2023/2/25 23:17
     * @param privilege 权限对象
     * @return boolean
     */
    boolean saveOrUpdatePrivilege(StarPrivilege privilege);

    /**
     * 删除指定ID的权限对象
     * @author : Rocks
     * @date :  2023/2/25 23:17
     * @param id 要删除权限ID
     * @return boolean
     */
    boolean removePrivilege(String id);

    JSONArray loadTree();

    JSONObject loadDataListByFid(CommonDTO dto);

    StarPrivilege loadPrivilegeById(String id);

    Object getMaxIndex(String fid);

    /**
     * 加载用户全部权限ID，多个角色用逗号分割
     * @author : Rocks
     * @date :  2023/7/7 18:11
     * @param userId 用户ID
     * @return String
     */
    String loadUserPrivileges(String userId);

    /**
     * 加载选择权限树
     * @author : Rocks
     * @date :  2023/7/20 19:44
     * @return JSONArray
     */
    JSONArray loadSelectTree ();
}
